package com.stone.encrypt.app.service;

import javax.annotation.Nonnull;
import javax.validation.constraints.NotEmpty;

/**
 * 获取公钥/私钥接口服务，留给用户实现
 *
 * @author Mr_wenpan@163.com 2021/08/03 10:49
 */
public interface EncryptService {

    /**
     * 保存公钥
     *
     * @param publicKey 公钥
     * @author Mr_wenpan@163.com 2021/8/3 5:07 下午
     */
    void savePublicKey(@NotEmpty String publicKey);

    /**
     * 保存私钥
     *
     * @param privateKey 私钥
     * @author Mr_wenpan@163.com 2021/8/3 5:07 下午
     */
    void savePrivateKey(@NotEmpty String privateKey);

    /**
     * 获取公钥接口
     *
     * @return java.lang.String
     * @author Mr_wenpan@163.com 2021/8/3 10:51 上午
     */
    @Nonnull
    String getPublicKey();

    /**
     * 获取私钥接口
     *
     * @return java.lang.String
     * @author Mr_wenpan@163.com 2021/8/3 10:50 上午
     */
    @Nonnull
    String getPrivateKey();

    /**
     * 获取安全密码接口
     *
     * @return java.lang.String
     * @author Mr_wenpan@163.com 2021/8/3 11:12 上午
     */
    @Nonnull
    String getSecurityKey();

}
